<?php
session_start(); //需要在任何html输出之前使用
$username = trim($_POST['username']);   //数字下标，索引数组。非数字下标（字符串下标），关联数组
$pw = trim($_POST['pw']); //变量命名规则：只能由字母、数字、下划线构成。且不能由数字开头。
$code = $_POST['code'];
if(strtolower($code) !== strtolower($_SESSION["captcha"])){
    echo "<script>alert('验证码错误');history.back();</script>";
    exit; //断点
}
if(!preg_match('/^[a-zA-Z\d]{3,10}$/',$username)){
    //preg_match如果匹配到字符串，则返回1，否则返回0
    echo "<script>alert('用户名必填，且只能由大小写字符和（或）数字构成，且长度在3到10个字符之间');history.back();</script>";
    exit; //断点
}
if(!preg_match('/^[a-zA-Z\d_*]{6,10}$/',$pw)){
    //preg_match如果匹配到字符串，则返回1，否则返回0
    echo "<script>alert('密码必填，且只能由大小写字符和（或）数字，以及_、*构成，且长度在6到10个字符之间');history.back();</script>";
    exit;
}
require_once('conn.php');
$sql = "select admin from userinfo where username = '$username' and pw = '" . md5($pw) . "'";
$result = mysqli_query($conn,$sql);
//接下来判断一下$result中是否有记录
if(mysqli_num_rows($result)){//返回结果可能是0，1。
    //说明数据表中有此用户名和密码（的组合）
    //设置登录成功的标志，需要用到session
    $_SESSION['loggedUsername'] = $username;
    //需要判断一下，当前登录者是不是管理员
    //读出当前登录者的个人信息，判断其admin数据列的值是0还是1
    $info = mysqli_fetch_array($result,MYSQLI_ASSOC);
    if($info['admin']){
        //说明当前是管理员，则设置管理员标志
        $_SESSION['isAdmin'] = 1;
    }
    else{
        //说明当前不是管理员，则删除管理员标志
        unset($_SESSION['isAdmin']);
    }
    echo "<script>alert('登录成功。');location.href='index.php';</script>";
}
else{
    unset($_SESSION['loggedUsername']);
    unset($_SESSION['isAdmin']);
    echo "<script>alert('登录失败。');</script>";
}
